#pragma once

#include "geometry.h"
#include "GL/glut.h"

class Face {
public:
    int index;
    int sharpness;
    bool opt;
    vector<Vertex*> vertices;

    //pointer to the next vertex in the Catmull-Clark subdivision.
    Vertex* ccVertex;

    Face(int index, vector<Vertex*> vertices, int sharpness, bool opt);

    Vector3d centroid() const;
    void setCCVertex(Vertex* v);

    Vertex* getDiagonal(const Vertex* v) const;
    Vertex* getFromVertex(const Vertex* v, int offset) const;

    void geometry(bool useMeanCurvature) const;
};
